package com.minshenglife.zanzan.service;

import java.util.List;
import java.util.Map;

import com.minshenglife.commons.dal.Page;
import com.minshenglife.zanzan.entity.WorkCon;
import com.minshenglife.zanzan.result.WorkConResult;


/**
 * work content service
 * @author huodd
 * @date 2014-07-04 
 */
public interface WorkConService {

	/**
	 * 添加工作内容
	 * @param log
	 */
	public void addOrUpdate(WorkCon con);
	
	/**
	 * 获取工作内容
	 * @param log
	 * @return 
	 */
	public WorkCon get(Long logId);
	/**
	 * 查看我的工作日志
	 * @param empId
	 * @param workConType
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	public Page<WorkConResult> findWorkConList(String empId,String workConType, int pageNo,
			int pageSize);
	/**
	 * 查看可以审阅的工作日志
	 * @param canBeReviewUser 可以被审阅的用户：多用户用户|分割（12312232|32132132|123232322）
	 * @param pageNo
	 * @param pageSize
	 * @param workConType
	 * @return
	 */
	public Page<WorkConResult> findWorkConViewList(String canBeReviewUser, int pageNo,
			int pageSize,String workConType);

	public void updateWorkCon(WorkCon con);
	/**
	 * 查看我下级的工作日志
	 * @param empId
	 * @param pageNo
	 * @param pageSize
	 * @param specialEmpId 
	 * @param workConType
	 * @return
	 */
	public Page<WorkConResult> findWorkConViewListOfDow(String empId,
			int pageNo, int pageSize, String searchArea, String searchPost, String searchEmp,String specialEmpId,String workConType);
	/**
	 * 分享工作日志
	 * @param id
	 * @param isShare true:Yes false:No
	 */
	public void workConShare(String id, boolean isShare);
	/**
	 * 查看分享的工作日志
	 * @param workConType
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	public Page<WorkConResult> findWorkShareList(String workConType,int pageNo, int pageSize);
	/**
	 * 特别关心列表
	 * @param operator
	 * @param workConType
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	public Page<WorkConResult> WCSpecialCareList(String operator,String workConType, int pageNo,
			int pageSize);
	/**
	 * 查询指定人员，指定日期，指定类型的工作日志。
	 * @param canBeReviewUser 多用户用户|分割（12312232|32132132|123232322）
	 * @param workConType
	 * @param logDate
	 * @return
	 */
	public List<WorkCon> findWorkConListOfDate(String canBeReviewUser, String workConType,String logDate);

	/**
	 * 查看我审阅的工作日志
	 * @param empId
	 * @param pageNo
	 * @param pageSize
	 * @param specialEmpId 
	 * @param workConType
	 * @param searchEmpName
	 * @param searchConState
	 * @param searchConStartTime
	 * @param searchConEndTime
	 * @return
	 */
	public Page<WorkConResult> findWorkConViewListOfDow(String empId,
			int pageNo, int pageSize, String searchArea, String searchPost,
			String searchEmp, String specialEmpId, String workConType,
			String searchEmpName, String searchConState,
			String searchConStartTime, String searchConEndTime);

	/**
	 * 查看我审阅的工作日志(类型为3的工作日志)
	 * @param empId
	 * @param pageNo
	 * @param pageSize
	 * @param workConType
	 * @return
	 */
	public Page<WorkConResult> findWorkConMarketViewListOfDow(String empId,String specialEmpId,
			int pageNo, int pageSize, String workConType);

	/**
	 * 按搜索条件查询可被审阅的日志
	 * @param canBeReviewUser 可以被审阅的用户：多用户用户|分割（12312232|32132132|123232322）
	 * @param pageNo
	 * @param pageSize
	 * @param workConType
	 * @param searchEmpName
	 * @param searchConState
	 * @param searchConStartTime
	 * @param searchConEndTime
	 * @return
	 */
	public Page<WorkConResult> findWorkConViewList(String canBeReviewUser,
			int pageNo, int pageSize, String workConType, String searchEmpName,
			String searchConState, String searchConStartTime,
			String searchConEndTime);

	/**
	 * 查看我审阅的工作日志(类型为3的工作日志)
	 * @param empId
	 * @param empId2
	 * @param pageNo
	 * @param pageSize
	 * @param workConType
	 * @param searchEmpName
	 * @param searchConState
	 * @param searchConStartTime
	 * @param searchConEndTime
	 * @return
	 */
	public Page<WorkConResult> findWorkConMarketViewListOfDow(String empId,
			String empId2, int pageNo, int pageSize, String workConType,
			String searchEmpName, String searchConState,
			String searchConStartTime, String searchConEndTime);

	/**
	 * 按条件查询日志
	 * @param empId
	 * @param pageNo
	 * @param pageSize
	 * @param searchArea
	 * @param searchPost
	 * @param searchEmp
	 * @param empId2
	 * @param workConType
	 * @param searchEmpName
	 * @param searchConState
	 * @param searchConStartTime
	 * @param searchConEndTime
	 * @return
	 */
	public Page<WorkConResult> findWorkConViewListOfSearch(String empId,
			int pageNo, int pageSize, String searchArea, String searchPost,
			String searchEmp, String empId2, String workConType,
			String searchEmpName, String searchConState,
			String searchConStartTime, String searchConEndTime);
	
	public void updateWorkCon(Map<String,Object> map);
}
